#include <iostream>
using namespace std;

// 1、new的基本语法
int* func()
{
    // 在堆区创建整型数据
    // new返回是 该数据类型的指针
    int* p = new int(10);
    return p;
}
void test1()
{
    int* p = func();
    cout << *p << endl;
    // 堆区的数据 由程序员管理开辟，由程序员管理释放

    // 如果想要释放堆空间的数据，利用关键字 delete
    delete p;
    cout << *p << endl;
}

// 2、在堆区利用new开辟数组
void test2()
{
    // 创建10整型数据的数组，在堆区
    int* arr = new int[10];

    for (int i = 0;i < 10;i++)
    {
        arr[i] = i + 50;// 给10个元素赋值
    }

    for (int i = 0;i < 10;i++)
    {
        cout << arr[i] << " ";
    }
    cout << endl;

    // 释放堆区数组
    // 释放数组的时候，要加[]
    delete[] arr;
}

int main()
{
    test1();

    test2();
    
    return 0;
}